/* Copyright (c) 2025 Beijing Semidrive Technology Corporation
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/** *****************************************************************************************************
 *  \file     Sent_Etimer.h                                                                             *
 *  \brief    This file contains interface header for SENT_ETIMER MCAL driver                           *
 *                                                                                                      *
 * <table>                                                                                              *
 * <tr><th>Date           <th>Version                                                                   *
 * <tr><td>2025/02/14     <td>1.0.0                                                                     *
 * </table>                                                                                             *
 *******************************************************************************************************/
#ifndef SENTETIMER_H
#define SENTETIMER_H

#include "SentEtimer_Ip.h"

#define SENTETIMER_MODULE_ID                   (2052U)
#define SENTETIMER_INSTANCE_ID                 (0u)

#define SENTETIMER_E_PARAM_CHANNEL             (0x0Au)
#define SENTETIMER_E_UNINIT                    (0x0Bu)
#define SENTETIMER_E_ALREADY_INITIALIZED       (0x0Cu)
#define SENTETIMER_E_CHAN_STATUS               (0x0Du)
#define SENTETIMER_E_PARAM_POINTER             (0x0Eu)

#define SENTETIMER_INIT_ID                     (0x01u)
#define SENTETIMER_DEINIT_ID                   (0x02u)
#define SENTETIMER_START_RECIEVER_ID           (0x03u)
#define SENTETIMER_STOP_RECIEVER_ID            (0x04u)
#define SENTETIMER_GET_FRAME_INFO_ID           (0x05u)

void SentEtimer_Init(const SentEtimer_ConfigType *ConfigPtr);

#if (SENT_DEINIT_API == STD_ON)
void SentEtimer_DeInit(void);
#endif /* SENT_DEINIT_API == STD_ON */

void SentEtimer_StartReciever(SentEtimer_ChannelType Channel);

void SentEtimer_StopReciever(SentEtimer_ChannelType Channel);

boolean SentEtimer_GetFrameInfo(SentEtimer_ChannelType Channel, uint32 *pError, SentEtimer_Frame *pFrameInfo);

void SentEtimer_IrqCommon(uint8 eModule);

#endif /* SENTETIMER_H */
/* End of file */
